//
// Created by wyh on 2025-06-14 17:17.
//
#include <iostream>
#include <string>
#include "utility/value.h"
#include "utility/option.h"

using namespace std;
using namespace wyh::utility;

int main(int argc, char **argv)
{
    Option opt;
    opt.add("a", Option::OPT_NO);
    opt.add("b", Option::OPT_REQUIRED);
    opt.add("c", Option::OPT_OPTIONAL);

    opt.add("name", Option::OPT_REQUIRED);
    opt.add("age", Option::OPT_OPTIONAL);
    opt.add("money", Option::OPT_REQUIRED);

    try{
        opt.parse(argc, argv);
    }catch (const std::logic_error& e){
        cerr<<"Error:"<<e.what()<<endl;
    }catch (...) { // 捕获所有其他类型的异常（可选）
        std::cerr << "Unknown error occurred." << std::endl;
    }
    opt.show();

    bool _a = opt.get("a");
    int _b = opt.get("b");
    string _c = opt.get("c");
    string __name = opt.get("name");
    int __age = opt.get("age");
    double __money = opt.get("money");

    cout << "_a=" << _a << ",_b=" << _b << ",_c=" << _c << endl;
    cout << "__name=" << __name << ",__age=" << __age << ",__money=" << __money << endl;

    return 0;
}
